package parser;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

import com.arjuna.common.util.FileLocator;

import entities.*;
import entitiesdto.CantidadArticuloDTO;
import entitiesdto.CantidadMateriaPrimaDTO;
import entitiesdto.EnvioCentroDistribucionDTO;

public class WriterXML 
{
	
	// -------------------------------------------
	// generar reposicion de articulos (4): RepAF
	// -------------------------------------------
	
	public void generarReposicionArt (EnvioCentroDistribucionDTO envio,String idfabrica){
	
		List<CantidadArticuloDTO> articulos = envio.getArticulos();
		String idrepaf = String.valueOf(envio.getId());
		String idcentro = String.valueOf(envio.getCd().getId());
		String idsolfab = envio.getIdSolFab();
		
		Element root = new Element("repAF");
	    
	    Element numrepaf = new Element("numRepAF");
		Element idfab = new Element ("idFabrica");
	    Element idcent = new Element ("idCentro");
	    Element numsolfab = new Element ("numSolFab");
		Element listarticulos = new Element ("articulos");
		
		numrepaf.addContent(idrepaf);
		idfab.addContent(idfabrica);
		idcent.addContent(idcentro);
		numsolfab.addContent(idsolfab);
		
		root.addContent(numrepaf);
	    root.addContent(idfab);
	    root.addContent(idcent);
	    root.addContent(numsolfab);
		
		for (CantidadArticuloDTO aux : articulos) {
			Element ref = new Element ("ref");
			Element can = new Element ("can");
			ref.addContent(aux.getArticulo().getRef());
			can.addContent(String.valueOf(aux.getCantidadPedida()));
			Element articuloFab = new Element ("articuloFabrica");
			articuloFab.addContent(ref);
			articuloFab.addContent(can);
			listarticulos.addContent(articuloFab);
		}
	    
	    root.addContent(listarticulos);
	    
	    Document doc = new Document(root);

	    XMLOutputter out=new XMLOutputter();
	    
	    try {
			FileOutputStream file=new FileOutputStream("C:/PRUEBA-XML/fabrica1-repaf-CD" + idcentro + ".xml");
			out.output(doc,file);
		    file.flush();
		    file.close();
		    out.output(doc,System.out);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	
	public void generarPedidoProveedores (List<CantidadMateriaPrimaDTO> materiasnecesarias, String numeropedido, String numerofabrica)
	{
		Element root = new Element("PCProv");
		Element numPcProv = new Element("numPcProv");
		Element numFab = new Element ("numFab");
		
		numPcProv.addContent(numeropedido);
		numFab.addContent(numerofabrica);
		
		root.addContent(numPcProv);
		root.addContent(numFab);
		
		Element listamaterias = new Element ("materias");
		
		for (CantidadMateriaPrimaDTO aux : materiasnecesarias) {
			Element ref = new Element ("ref");
			Element can = new Element ("can");
			ref.addContent(aux.getMateriaPrima().getRef());
			can.addContent(String.valueOf(aux.getCantidad()));
			Element materia = new Element ("materiaNecesaria");
			materia.addContent(ref);
			materia.addContent(can);
			listamaterias.addContent(materia);
		}
		
		root.addContent(listamaterias);
		
		Document doc = new Document(root);

	    XMLOutputter out=new XMLOutputter();
	    
	    try {
			FileOutputStream file=new FileOutputStream("C:/PRUEBA-XML/pcProv.xml");
			out.output(doc,file);
		    file.flush();
		    file.close();
		    out.output(doc,System.out);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}
